Sélectionnez un profil pour adapter la présentation.
Si un mot clé ne vous plaît pas ou ne vous paraît pas pratique, changez-le, ou créez un synonyme pour conserver la compatibilité. PLUSHIE peut ainsi se décliner en plusieurs langues ou dialectes, ou même imiter les langages ésotériques si ça vous amuse.
On peut donc obtenir des formulations proches du langage naturel même avant de modifier l'interpréteur de base.
Calculer Trois Fois Deux Effectuer Calcul Afficher Résultat À l'écran
Six
Il en découle une formulation du code beaucoup plus lisible que celle des langages ésotériques de type Brainfuck , les parenthèses du LISP ou les langages à instruction unique comme SUBLEQ.
PLUSHIE apprend en permanence. Son langage est appris de manière incrémentale : les mots émergent du texte, les instructions apparaissent de manière dynamique.
Il n'a pas de grammaire prédéfinie, ni fixe.
On peut donc observer la construction d'un système informatique complet à partir de sa base la plus simple.
Une seule procédure primitive (copie en double indirection), une mémoire simple (tête/suite), un mécanisme d'exécution unique et donc presque rien à apprendre avant de l'utiliser.
Cela inclut la chaîne d'exécution de l'interpréteur initial, qui peut donc être intégralement remplacé, jusqu'à ce qu'on en arrive à se demander comment tout a commencé.
pas de distinction données / variables / programmes / contrôle:
la chaîne d'exécution est dans la mémoire, elle est modifiable en temps réel, par elle-même. Les instructions sont des structures en mémoire.
la récursivité est intrinsèque: toute procédure ou fonction peut non seulement s'appeler elle-même mais aussi se modifier pendant son exécution. Le pointeur d'exécution est manipulable et le système peut modifier son propre comportement
Il ya très peu de choses à apprendre pour coder en PLUSHIE. Les termes que PLUSHIE utilisera seront le fruit de votre propre production. Même les fonctions définies dans le fichier ini peuvent être remplacées puis oubliées. et pourtant PLUSHIE reste un langage complet, offre des défis de programmation, et peut gérer la récursivité, les piles, les arbres...
Comme on peut utiliser les mots que l'on souhaite, on arrive rapidement à créer des dialectes non compatibles ou non compréhensible d'une application de PLUSHIE à l'autre (comme dans le cas du langage humain).
Comme les programmes peuvent se modifier pendant leur exécution, il est très facile de "planter" PLUSHIE (vous allez faire chauffer la touche et le bouton
).
Le minimalisme du langage ne guide pas le programmeur (ceci dit, PLUSHIE peut être fourni avec un set de fonctions de base aussi large que souhaité).
Chaque caractère a son importance pour PLUSHIE. Une simple erreur de frappe crée donc un mot différent. Si on garde la convention facultative de terminer les mots par des espaces (il n'y a pas de caractère séparateur en PLUSHIE), un double espace suffit à planter le code. D'aucuns diront que ce n'est pas pire que l'html ou le javascript.
En se laissant porter par le sens humain usuel des mots utilisés, on peut perdre de vue assez rapidement ce que fait réellement le programme.
La copie en double indirection elle-même n'est pas intuitive et produit des effets
difficiles à anticiper quand on n'est pas habitué.
Sous ses dehors simple, PLUSHIE peut produire des structures et comportements très complexes.
Suivre ce qu'il se passe peut devenir difficile, même pour quelqu'un de technique.
Puisque PLUSHIE peut se modifier lui-même, il peut générer des programmes aux propriétés imprévisibles (reste à le démontrer formellement).
Pas de séparation claire des niveaux, effets globaux de petites modifications, propagation non locale, variables publiques uniquement
PLUSHIE is not GNU...
Pas d'outils de débogage fournis (mais si il existe des astuces, des espions possibles )
Pas d'optimisation native
Il manque encore des définitions mathématiques précises, des invariants et un cadre de preuve.
Vous non plus vous ne savez pas si PLUSHIE est :